package com.igd.utils;

import org.dom4j.Document;
import org.dom4j.Element;


/**
 * @createDate 2013-6-30
 *
 * @author QIAOYU
 *
 * @version 1.0
 *
 * @description Dom4j操作XML工具类
 */

public class Dom4jUtil {
	
	private static Dom4jUtil domUtil = null;
	
	private Dom4jUtil(){};
	
	/** doc作为外部参数传入,此处无法确认以何种方式读取XML */
	private Document doc;
	
	public static Dom4jUtil getInstance(){
		
		if(null == domUtil){
			
			synchronized (Dom4jUtil.class) {
				
				domUtil = new Dom4jUtil();

			}
		}
		
		return domUtil;
	}
	
	/**
	 * 获取XML ROOT节点元素
	 * 
	 * @return
	 */
	public Element getRoot(){
		
		return this.getDoc().getRootElement();

	}
	
	/**
	 * 设置元素值
	 * 
	 * @param e
	 * 
	 * @param value
	 */
	public void setElementVal(Element e,String value){
		
		if(null != e){
			
			e.setText(value);

		}
	}
	
	/**
	 * 设置元素属性值
	 * 
	 * @param e
	 * 
	 * @param qName
	 * 
	 * @param qValue
	 */
	public Element setAttributeVal(Element e,String qName,String qValue){
		
		return null != e ? e.addAttribute(qName, qValue) : null;
		
	}
	
	/**
	 * 获取元素属性值
	 * @param e
	 * @param qName
	 * @return
	 */
	public String getAttributeVal(Element e,String qName){
		
		return null != e ? e.attributeValue(qName):null;
	}
	
	/**
	 * 添加元素
	 * 
	 * @param e
	 * 
	 * @param name
	 * 
	 * @return
	 */
	public Element addElement(Element e,String name){
		
		return null != e ? e.addElement(name) : null;

	}
	
	public Document getDoc() {
		
		return null != doc ? doc : null;

	}

	public void setDoc(Document doc) {
		this.doc = doc;
	}
}
